

public class TestePessoa {
	
	public static void main(String[] args) {
		
		/*
		 * ANOTA«√O PARA O GRUPO
		 * Abaixo est„o os mÈtodos que s„o obrigatÛrios de acordo com o PDF da professora:
		 * 
		 * 	∑ pessoa.casar( Pessoa p) 				--- OK
			∑ pessoa.divorciar( Pessoa p) 			--- OK
			∑ pessoa.verificarParentesco( Pessoa p) --  OK
			∑ pessoa.listarFilhos( Pessoa p) 		--- OK
			∑ pessoa.listarCasamentos() 			--- ??
			∑ pessoa.verficarEstadoCivil() 			--- OK
			∑ mulher.calcularIMC() 					--- OK
			. TODO> Metodo adicional CalculaIdadeCasamento (Fazer na classe Pessoa)
			
			Os metodos que eu ja implementei estao com OK - @adonaidiofanes
			
		 * 
		 * 
		 * <<<<<<<< DUVIDAS >>>>>>>>
		 * 
		 * Porque se eu instanciar Pessoa p = new Mulher(...);
		 * Eu n„o consigo fazer p.calculaIMC()
		 * 
		 * */
		

		/*
		 * InstanciaÁ„o das Pessoas (F·brica de Gente)
		 * 
		 * */
		
		Mulher DonaNeves = new Mulher("Dona Neves", 80, 'F', 54.4, 1.72);
		
		Pessoa SirNeves = new Pessoa("Sir Neves", 88, 'M');
		
		// CASAR > Sir Neves / Dona Neves
		DonaNeves.casar(SirNeves);
		
		Pessoa QuicoPai = new Pessoa("Quico Pai", 70, 'M');
		// GERAR FILHOS > SirNeves + DonaNeves = QuicoPai
		DonaNeves.gerarFilhos(QuicoPai);
		SirNeves.gerarFilhos(QuicoPai);
		
		Pessoa ProfessorGirafales = new Pessoa("Professor Girafales", 58, 'M');
		
		Mulher DonaFlorinda = new Mulher("Dona Florinda", 69, 'F', 55.0, 1.70);
		
		Mulher MaeDaChiquinha = new Mulher("Mae da Chiquinha", 57, 'F', 78.2, 1.50);
		// GERAR FILHOS > DonaNeves+SirNeves = MaeDaChiquinha
		DonaNeves.gerarFilhos(MaeDaChiquinha);
		SirNeves.gerarFilhos(MaeDaChiquinha);
		
		Mulher Kika = new Mulher("Kika", 16, 'F', 50.4, 1.65);
		
		Pessoa Quico = new Pessoa("Quico", 15, 'M');
		// CASAR > QuicoPai + DonaFlorinda
		QuicoPai.casar(DonaFlorinda);
		
		// GERAR FILHOS > QuicoPai + DonaFlorinda = Quico
		QuicoPai.gerarFilhos(Quico);
		DonaFlorinda.gerarFilhos(Quico);
		
		// GERAR FILHOS > QuicoPai + DonaFlorinda = Kika
		QuicoPai.gerarFilhos(Kika);
		DonaFlorinda.gerarFilhos(Kika);
		
		// DIVORCIAR > QuicoPai + DonaFlorinda
		DonaFlorinda.divorciar();
		
		// CASAR > DonaFlorinda + ProfessorGirafales
		DonaFlorinda.casar(ProfessorGirafales);
		
		Mulher DonaMadruga = new Mulher("Dona Madruga", 90, 'F', 100.0, 1.80);
		
		Pessoa SirMadruga = new Pessoa("Sir Madruga", 95, 'M');
		// DonaMadruga + SirMadruga
		DonaMadruga.casar(SirMadruga);
		
		Pessoa SeuMadruga = new Pessoa("Seu Madruga", 40, 'M');
		// GERAR FILHOS > DonaMadruga + SirMadruga = SeuMadruga
		DonaMadruga.gerarFilhos(SeuMadruga);
		SirMadruga.gerarFilhos(SeuMadruga);
		
		// CASAR > SeuMadruga + MaeDaChiquinha
		SeuMadruga.casar(MaeDaChiquinha);
		
		Mulher Chiquinha = new Mulher("Chiquinha", 15, 'F', 35.3, 1.90);
		
		// GERAR FILHOS > SeuMadruga + MaeDaChiquinha = Chiquinha
		SeuMadruga.gerarFilhos(Chiquinha);
		MaeDaChiquinha.gerarFilhos(Chiquinha);
		
		// DIVORCIAR > SeuMadruga + MaeDaChiquinha
		SeuMadruga.divorciar();

		Mulher Bruxa71 = new Mulher("Bruxa do 71", 71, 'F', 120.0, 1.72);
		
		Pessoa Chaves = new Pessoa("Chaves", 15, 'F');
		
		// CASAR > SeuMadruga + Bruxa71
		SeuMadruga.casar(Bruxa71);
		
		// GERAR FILHOS > SeuMadruga + Bruxa71 = Chaves
		SeuMadruga.gerarFilhos(Chaves);
		Bruxa71.gerarFilhos(Chaves);
	
		/* TODO> Descomentar essas linhas */
		System.out.println("------------------------------------------------------------------------------------------------------------------");
		System.out.println("MÈtodo # 03 -> Listar Parentesco da Familia Chaves.");
		System.out.println("------------------------------------------------------------------------------------------------------------------");
		System.out.print  ("Teste#01 -> "); Chaves.verificarParentesco(DonaFlorinda);				// nao tem parentes
		System.out.print  ("Teste#02 -> "); QuicoPai.verificarParentesco(Quico);					// pai
		System.out.print  ("Teste#03 -> "); DonaFlorinda.verificarParentesco(Quico);				// mae
		System.out.print  ("Teste#04 -> "); ProfessorGirafales.verificarParentesco(DonaFlorinda); 	// marido
		System.out.print  ("Teste#05 -> "); DonaFlorinda.verificarParentesco(ProfessorGirafales); 	// esposa
		System.out.print  ("Teste#06 -> "); Chaves.verificarParentesco(SeuMadruga);					// filho
		System.out.print  ("Teste#07 -> "); Chiquinha.verificarParentesco(SeuMadruga);				// filho
		System.out.print  ("Teste#08 -> "); SirNeves.verificarParentesco(Chiquinha);				// avÙ
		System.out.print  ("Teste#09 -> "); DonaNeves.verificarParentesco(Chiquinha); 				// avÛ
		System.out.print  ("Teste#10 -> "); QuicoPai.verificarParentesco(Chiquinha); 				// tio
		System.out.print  ("Teste#11 -> "); MaeDaChiquinha.verificarParentesco(Quico); 				// tia
		System.out.print  ("Teste#12 -> ");	Quico.verificarParentesco(MaeDaChiquinha); 				// sobrinho
		System.out.print  ("Teste#13 -> ");Chiquinha.verificarParentesco(QuicoPai); 				// sobrinha
		System.out.print  ("Teste#14 -> "); Quico.verificarParentesco(SirNeves);					// *neto
		
		System.out.println("------ VERIFICA«√O DE PARENTESCO: FIM DAS VERIFICA«’ES PROPOSTAS  ------");
		
		QuicoPai.listarFilhos();
		QuicoPai.listarCasamentos();
		MaeDaChiquinha.listarFilhos();
		
		DonaFlorinda.calculaIMC();
		
		DonaFlorinda.calculaIMC();
		/* TODO: Listar casamentos
		List<Pessoa> todas = new ArrayList<Pessoa>();
		todas = Pessoa.getTodas();
		System.out.println(todas);
		DonaFlorinda.listarCasamentos(todas);
		*/
		
	}

}